Skip to content

feat: Django 4.2 LTS support + release 1.5.0 (#622)#645

Merged
MartinCastroAlvarez merged 1 commit into
mainfrom
feat/django-4.2-support
May 31, 2026
Merged

feat: Django 4.2 LTS support + release 1.5.0 (#622)#645
MartinCastroAlvarez merged 1 commit into
mainfrom
feat/django-4.2-support

Conversation

@MartinCastroAlvarez
Copy link
Copy Markdown
Owner

Closes #622 — the cross-repo Django 4.2 chain is complete.

What

Relax this package's Django pin from >=5.0,<7.0 to >=4.2,<7.0, bump the API + MCP dep constraints to their 4.2-aware floors, add a 4.2 dimension to CI, and update the README's Requirements + classifier list.

Repo Before After Released
django-admin-rest-api django >=5.0 django >=4.2 1.1.0 on PyPI
django-admin-mcp-api django >=5.0 django >=4.2 1.1.0 on PyPI
django-admin-react django >=5.0 django >=4.2 1.5.0 (this PR)

Why the SPA's MCP constraint also tightens (>=1.0.0>=1.1.0): the 1.0.x mcp line pins django >=5.0, so a consumer on Django 4.2 would resolve to an mcp version that refuses to install. Bumping the floor keeps the install promise honest.

CI matrix

matrix:
  python: ["3.12"]
  django: ["4.2", "5.2"]

Runtime install swaps Django via the venv's pip install "django~=<matrix>.0", same idiom the API + MCP repos use.

README freshness

Two doc updates aligned to the post-#631 / post-Django-4.2 reality:

  • PRIMARY_COLOR default is now None (resolver reads AdminSite.site_primary_color next, falls back to the built-in #2563eb). The settings-block example reflects the None default.
  • New "Accent colour" subsection in Branding documents the full resolution order + the site_primary_color AdminSite-attr convention with a worked AcmeAdminSite example.
  • Requirements now reads Django: 4.2 LTS, 5.0, 5.1, 5.2 LTS, 6.0.

Screenshots in docs/screenshots/ were last regenerated 2026-05-28; they still accurately represent the SPA's core surface (light/dark/mobile/login/registry/list/detail/JSON-view). Deferring full regeneration to a dedicated session — running Playwright + a Django dev server + Chromium for a docs refresh adds friction the text changes don't.

Verification

  • poetry run pytest -q61 / 61 ✓ on Django 4.2.30
  • poetry run pytest -q61 / 61 ✓ on Django 5.2.14 (no regression)
  • pnpm test187 / 187 ✓
  • pnpm -r typecheck
  • pnpm lint
  • Cross-repo install resolved end-to-end: rest-api 1.1.0 + mcp-api 1.1.0 + django 4.2.30 + this package 1.5.0 in one venv.

Minor bump rationale

1.4.131.5.0. New supported environment (Django 4.2 LTS) per SemVer's "additive features that broaden compatibility." Matches the symmetric 1.1.0 minor bumps on django-admin-rest-api and django-admin-mcp-api.

🤖 Generated with Claude Code

Closes #622 — the cross-repo Django 4.2 chain is now complete.

## What

Relax this package's Django pin from `>=5.0,<7.0` to `>=4.2,<7.0`,
bump the API + MCP dep constraints to their 4.2-aware floors,
add a 4.2 dimension to CI, and update the README's Requirements
section + classifier list to advertise 4.2.

| Repo | Before | After | Released |
|---|---|---|---|
| `django-admin-rest-api` | `django >=5.0` | `django >=4.2` | 1.1.0 (PyPI) |
| `django-admin-mcp-api`  | `django >=5.0` | `django >=4.2` | 1.1.0 (PyPI) |
| `django-admin-react`    | `django >=5.0` | `django >=4.2` | **1.5.0 (this PR)** |

Why the constraint tightens on `django-admin-mcp-api` even though
its public range stays the same: the 1.0.x line pins
``django>=5.0``, so a consumer on Django 4.2 would resolve to an
mcp version that refuses to install. Bumping the floor to
``>=1.1.0`` keeps the install promise honest.

## CI matrix

Added a `matrix.django: ["4.2", "5.2"]` dimension; runtime install
swaps Django via the venv's `pip install "django~=<matrix>.0"`.
Today both matrix cells run py3.12.

## README freshness

While here, two doc updates aligned to the post-#631 reality:

- `PRIMARY_COLOR` default is now `None` (the resolver reads
  `AdminSite.site_primary_color` next, falling back to the
  built-in `#2563eb`). The settings-block example reflects the
  None default.
- New "Accent colour" subsection in Branding documents the full
  resolution order + the `site_primary_color` AdminSite-attr
  convention, with a worked `AcmeAdminSite` example.

The "Requirements" line now reads `Django: 4.2 LTS, 5.0, 5.1,
5.2 LTS, 6.0 (and any later 6.x)` — accurate for what the wheel
will actually install on.

## Verification

- `poetry run pytest -q` — **61 / 61 ✓** on Django 4.2.30
- `poetry run pytest -q` — **61 / 61 ✓** on Django 5.2.14 (no regression)
- `pnpm test` — **187 / 187 ✓**
- `pnpm -r typecheck` ✓
- `pnpm lint` ✓
- Cross-repo install resolved end-to-end: rest-api 1.1.0 + mcp-api
  1.1.0 + django 4.2.30 + this package 1.5.0 in one venv.

## Minor bump rationale

`1.4.13` → `1.5.0`. New supported environment (Django 4.2 LTS)
per SemVer's "additive features that broaden compatibility"
guideline. Matches the symmetric 1.1.0 minor bumps on
`django-admin-rest-api` and `django-admin-mcp-api`.

Closes #622.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MartinCastroAlvarez MartinCastroAlvarez merged commit 7cb3d63 into main May 31, 2026
6 checks passed
@MartinCastroAlvarez MartinCastroAlvarez deleted the feat/django-4.2-support branch May 31, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[audit] Python ≥3.10 / Django ≥5.0 pin excludes Django 4.2 LTS — biggest adoption blocker

2 participants